import { createRouteMap } from "./create-route-map";
import {createRoute} from "./history/base";
export function createMatcher(routes) {
  //将数据扁平化处理
  // 路径和记录匹配  /  record
  //pathList：表示所有的路径的集合 [/ /about /about/a /about/b]
  //pathMap {/:record, /about:record, /about/a:record}
  let { pathList,pathMap } = createRouteMap(routes); // 创建映射表
  //重载
  function addRoutes(routes) {
    // 将新的路由添加到 pathMao中
    createRouteMap(routes, pathList, pathMap);
  }
  //可以实现动态添加路由
  // 演示addRoutes([{path:'/home',component:{}}])

  //匹配对应记录的
  function match(path) {
    // 帮你去pathMap中找到对应的记录
    let record = pathMap[path];
    return createRoute(record,{
      path:location
    });
  };
  // 面试会问 动态路由的实现 就是将新的路由插入到老的路由的映射表中
  return {
    addRoutes,
    match
  }
}   